/**
 * @file
 * @author  Tsin Smith <tsin.creator@gmail.com>
 *
 * @section DESCRIPTION
 *
 */

#ifndef __TSIN_RUNTIME_ENGINE_HPP__
#define __TSIN_RUNTIME_ENGINE_HPP__

#include <tsin/runtime/common.hpp>

namespace tsin {

        class Input;
        class Timer;
        class GameRuntime;
        class Work;

        class RUNTIME_DLLEXPORT Engine {
        public:
                Engine();
                virtual ~Engine() {}

                virtual void init(GameRuntime *runtime) = 0;
                virtual void run(GameRuntime *runtime);

        protected:
                bool done;
                Work **works;
        };

}

#endif /* __TSIN_RUNTIME_ENGINE_HPP__ */
